import {request} from "../../utils/request"
import {getUserId} from "../../utils/storage"
const formatDate = (timeStr) => {
  if (!timeStr) return ""; // 处理空值
  // 截取 "2025-09-01" 部分（T之前的内容）
  const datePart = timeStr.split("T")[0];
  return datePart;
};
// pages/bills/bills.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    topTabs: ['待支付', '已支付','全部'],
    activeTopTab: 0,
    showModal: false, 

    selectedChip: 0,
    //显示当前的账单列表
    bills: [],
    users:[],
    //保存完整的原始数据
    allBills: [],
    billTo:[],
    bill:{},
    popupShow: false, // 控制弹窗显示/隐藏
    popupStartDate: '', // 弹窗中的开始日期
    popupEndDate: ''    // 弹窗中的结束日期
  },



  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.setData({
      activeTopTab: 0,      // 默认选择第一个tab（待支付）
      selectedChip: 0       // 默认选择第一个chip（全部）
    });
    // 然后调用过滤方法
    // this.filterBills();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },
 
  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
  const userId = getUserId();
  request("/finance/billList/getBillListByUserId?userId=" + userId, null, "GET")
  .then((res) => {
    const allBill=[]
    // 请求成功（后端返回 code: 200）
    console.log("删除用户账单列表成功", res);
    res.data.forEach(item => {
      // 确保 item.bills 是数组，避免推入非数组值
      if (item?.bills && Array.isArray(item.bills)) {
            // 遍历当前 item 的 bills 数组，给每个 bill 添加 name 属性
      const billsWithName = item.bills.map(bill => ({
        ...bill, // 保留原 bill 的所有属性
        name: item.name ,// 新增 name 属性，值为当前 item 的 name
        billStartTime: formatDate(bill.billStartTime),
        billEndTime: formatDate(bill.billEndTime)
      }));
        item.bills=billsWithName
        allBill.push(...item.bills); // 展开子数组，平级添加

      } else {
        console.warn("当前item的bills不是有效数组：", item);
      }
    });
    // 可添加成功后的操作，如提示用户、刷新列表等
    this.setData({
      users:res.data,
      allBills:allBill,
      bills:allBill,
      selectedChip:'-1',
      activeTopTab: 2,
      billTo:allBill
    })
  })
  .catch((err) => {
    // 请求失败（包括 401 未登录、后端返回非 200 状态、网络错误等）
    console.error("删除用户账单列表失败", err);
    // 错误信息已在 request 工具中通过 wx.showToast 提示，这里可补充额外处理
  });
},

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {


  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },
  // //双重过滤
  filterBills() {
    let filteredBills = this.data.billTo;
    // 状态过滤
    switch (this.data.activeTopTab) {
      case 2: // 全部
        break;
      case 0: // 待支付
        filteredBills = filteredBills.filter(item => item.billStatus === '0');
        break;
      case 1: // 已支付
        filteredBills = filteredBills.filter(item => item.billStatus === '1');
        break;
   
    }
    this.setData({
      bills:filteredBills
    })
  },
  //   // 姓名过滤
  //   if (this.data.selectedChip !== 0) {
  //     const chipName = this.data.chips[this.data.selectedChip];
  //     filteredBills = filteredBills.filter(item => item.familyName === chipName);
  //   }
  //   this.setData({ bills: filteredBills });
  // },
  // //状态过滤函数
  onTopTabTap(e) {
    const index = e.currentTarget.dataset.index;
    this.setData({ activeTopTab: index });
    this.filterBills();
  },
  //姓名过滤函数
  onChipTap(e) {
    const index = e.currentTarget.dataset.index;
    console.log(index)
      if(index==-1){
        this.setData({
          selectedChip:index,
          billTo:this.data.allBills
        })
      }else{
        this.setData({
          selectedChip:index,
          billTo:this.data.users[index].bills
        })
      }
      console.log(this.data.bills)
    this.filterBills();
  },

 

  onPay(e) {
    const billId = e.currentTarget.dataset.id;
    console.log(billId)
    // wx.showToast({ title: '去支付: ' + e.currentTarget.dataset.id, icon: 'none' });
    wx.navigateTo({
      url: `/pages/ready-pay/ready-pay?id=${billId}`,
      success: (result) => {
        console.log(result)
       },
      fail: (res) => {
        console.error('跳转失败:', res.errMsg)
      }
    })
  },
  onViewDetail(e) {
    const billId = e.currentTarget.dataset.id;
    // 根据账单ID获取对应明细数据（这里用示例数据）
    const bill = this.data.bills.find(item => item.id === billId);
    if (bill) {
      // 解析账单时间作为弹窗周期（示例逻辑）
      this.setData({
        popupShow: true,
        bill:bill,
        popupStartDate: bill.billStartTime.split(' ')[0],
        popupEndDate: bill.billEndTime.split(' ')[0]
      });
    }
  },
  // 关闭弹窗
  onPopupClose() {
    this.setData({ popupShow: false });
  }
  
});
